package com.jy.adscm.hcPlan.service;

import com.jy.adscm.exception.AdscmSystemException;
import com.jy.adscm.hcPlan.bean.HcPlanAfterFinalAssemblyExample;
import com.jy.adscm.hcPlan.bean.HcPlanFinalAssembly;
import com.baomidou.mybatisplus.service.IService;
import com.jy.adscm.hcPlan.bean.support.HcPlanFinalAssemblyDetail;
import com.jy.adscm.hcPlan.bean.support.HcPlanFinalSupportBean;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 耗材总装表 服务类
 * </p>
 *
 * @author yyy
 * @since 2018-08-13
 */
public interface HcPlanFinalAssemblyService extends IService<HcPlanFinalAssembly> {

    /**
     * 获取所有总装的集合
     * @return
     */
    public HcPlanFinalSupportBean queryHcPlanFinalAssemblyListBean() throws AdscmSystemException;
    /**
     * 获取所有总装的集合
     * @return
     */
    public List<HcPlanFinalAssembly> queryHcPlanFinalAssemblyList() throws AdscmSystemException;
    /**
     * 直接修改总装的起止时间
     * @return
     */
    public void editFinalAssemblyDate(HcPlanFinalAssembly finalAssembly) throws AdscmSystemException;
    /**
     * 修改某一批次总装后面环节的时间
     * @return
     */
    public void editAfterFinalAssemblyExample(List<HcPlanAfterFinalAssemblyExample> list) throws AdscmSystemException;

    /**
     * 提交总装任务
     * @param id
     * @throws AdscmSystemException
     */
    public void submitFinalAssemblyTask(Long id) throws AdscmSystemException;

    /**
     * 根据已有销售任务，生成总装数据
     * @param date 时间节点：获取大于这个时间的销售任务
     * @return
     */
    public void loadFinalAssembly(String date) throws AdscmSystemException;

    /**
     * 获取总装详情
     * @param sale_task_flow_num
     * @param goods_id
     * @return
     * @throws AdscmSystemException
     */
    public HcPlanFinalAssemblyDetail getFinalAssemblyDetail(String sale_task_flow_num, String goods_id) throws AdscmSystemException;
    /**
     * 重新修改总装时间
     * @param finalAssemblyId
     * @return
     * @throws AdscmSystemException
     */
    public void reEditFinalAssembly(Long finalAssemblyId) throws AdscmSystemException;

}
